// @ts-nocheck
// 1. 全选，全部选功能模块

$(function () {
    // 1. 全选，全部选功能模块
    // 就是把全选按钮（checkall）的状态赋值给三个小按钮（j-checkbox）就可以了
    // 事件可以使用change

    $('.checkall').change(function () {
        let a = $(this).prop('checked');
        // console.log(a);
        // $('.j-checkbox').prop('checked', a);

        // 点击全选，另一个全选也选上；
        $('.j-checkbox, .checkall').prop('checked', a);

        // 6. 
        if ($(this).prop('checked')) {
            // $(this).parents('.cart-item').addClass('check-cart-item');
            // 这里是全选，上面是单个
            $('.cart-item').addClass('check-cart-item');
        } else {
            $('.cart-item').removeClass('check-cart-item');
        }
    })

    // 里面小的选完后，全选自动选
    $('.j-checkbox').change(function () {
        // if(被选中的小的复选框的个数 === 3){
        //     就要选中全选
        // }else {
        //     不选中全选
        // }

        // 选中的个数
        let a = $('.j-checkbox:checked').length;
        // 有多少个小复选框
        let b = $('.j-checkbox').length;

        if (a === b) {
            $('.checkall').prop('checked', true);
        } else {
            $('.checkall').prop('checked', false);
        }

        // 6.1 单个选中，改变背景
        let c = $(this).prop('checked');
        if (c) {
            $(this).parents('.cart-item').addClass('check-cart-item');
        } else {
            $(this).parents('.cart-item').removeClass('check-cart-item');
        }
    })
})


// 2、增减商品数量模块
function a5() {
    // 2.1 加

    let calculation = function (n) {

        console.log('cal', n);
        // 3. 小计，获取价格
        let p = $(this).parent().parent().siblings(".p-price").text();
        p = p.substr(1);
        // console.log(p);

        // 3.1 小计，计算价格
        // 3.2 精确到百分位
        let p2 = (p * n).toFixed(2);
        p2 = '￥' + p2;
        $(this).parent().parent().siblings(".p-sum").html(p2);
    }

    $(".increment").click(function () {
        // 得当当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        // console.log(n);
        n++;
        $(this).siblings('.itxt').val(n);

        // 3. 小计，获取价格
        let p = $(this).parents(".p-num").siblings(".p-price").text();
        p = p.substr(1);
        // console.log(p);

        // 3.1 小计，计算价格
        // 3.2 精确到百分位
        let p2 = (p * n).toFixed(2);
        p2 = '￥' + p2;
        $(this).parents(".p-num").siblings(".p-sum").html(p2);

        getSum();
    });

    // 2.2 减
    $(".decrement").click(function () {
        // 得当当前兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        // console.log(n);
        if (n == 1) {
            return false;
        }
        n--;
        $(this).siblings('.itxt').val(n);

        // 3. 小计，获取价格
        let p = $(this).parents(".p-num").siblings(".p-price").text();
        p = p.substr(1);
        // console.log(p);

        // 3.1 小计，计算价格
        // 3.2 精确到百分位
        let p2 = (p * n).toFixed(2);
        p2 = '￥' + p2;
        $(this).parents(".p-num").siblings(".p-sum").html(p2);

        getSum();
    });
}
a5();

// 3、用户修改文本框的值，计算，小计模块
$('.itxt').change(function () {
    // 先得到文本框里面的值 乘以 当前商品的单价
    var n = $(this).val();

    if (n < 0) {
        alert('不能输入负数');
        $(this).css('color', 'red');
        return;
    }
    // 当前商品的单价
    let p = $(this).parents('.p-num').siblings('.p-price').html();
    p = p.substr(1);

    let p2 = (p * n).toFixed(2);
    p2 = '￥' + p2;
    $(this).parents(".p-num").siblings(".p-sum").html(p2);

    getSum()
})

// 4. 计算总计和总额
// 4.1 被调用的函数，写在调用下面也可以，也许上面那些事事件才能这样；
function getSum() {
    let count = 0; // 总件数
    let money = 0; // 计算总价钱

    $('.itxt').each(function (i, ele) {
        count += parseInt($(ele).val());
    });

    // 给总计
    $('.amount-sum em').text(count);

    // 4.2 把所有的小计的价格拿来；
    $('.p-sum').each(function (i, ele) {
        money += parseFloat($(ele).text().substr(1));
    })
    $('.price-sum em').text('￥' + money.toFixed(2));
}

// 5. 删除

// 5.1 商品后面的删除按钮
$('.p-action a').click(function () {
    // 删除的是当前的商品
    $(this).parents('.cart-item').remove();
    getSum()
})

// 5.2 删除选中的商品
$('.remove-batch').click(function () {
    // 删除的是小的复选框选中的商品
    $('.j-checkbox:checked').parents('.cart-item').remove();
    getSum()
});

// 5.3 清空购物车，删除全部商品
$('.clear-all').click(function () {
    // 删除的是小的复选框选中的商品
    $('.cart-item').remove();
    getSum()
});

